package com.example.takeaway.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.takeaway.model.bo.CartItem;
import com.example.takeaway.model.dto.AddCartItemDTO;
import com.example.takeaway.model.vo.CartVO;

/**
 * <p>
 * 购物车项表 服务类
 * </p>
 *
 * @author 邢晨旭
 * @since 2023-10-12
 */
public interface CartItemService extends IService<CartItem> {

    /**
     * 添加购物车
     *
     * @param param 购物车信息
     */
    void addCart(AddCartItemDTO param);

    /**
     * 购物车加减操作
     *
     * @param id  购物车项id
     * @param num 数量 1/-1
     */
    void changeNum(Long id, Integer num);

    /**
     * 清空购物车
     *
     * @param shopId 店铺id
     * @param userId 用户id
     */
    void delCart(Long shopId, Long userId);

    /**
     * 查询购物车列表
     *
     * @param shopId 店铺id
     * @param userId 用户id
     * @return 购物车列表
     */
    CartVO queryCartList(Long shopId, Long userId);
}
